%% vim: ts=4 sw=4 et ft=erlang
[
    {sync,[

        %% sync_method: How will sync find changes?
        %% valid values: scanner | fsevents
        %% default: scanner
        %% * scanner = Default behavior. Scans the file system for changes.
        %% * fsevents = subscribes to known directories for filesystem changes.
        %%   If a change on the fs happens in that directory, it triggers a recompile
        %%   of changed files.
        {sync_method, scanner},

        %% growl: Desktop notifications
        %% valid values: all | none | [success | warning | error]
        %% default: all
        {growl, all},
        
        %% log: Console notifications
        %% valid values: all | none | [success | warnings | errors]
        %% default: all
        {log, all},    
                       
        %% non_descendants: How to handle beams whose original source path is
        %% not a descendant of the current working directory.
        %%
        %% valid values: fix | allow | ignore
        %% * fix = attempt to find source files under current directory
        %% * allow = don't do anything special, use the non-descendant path and
        %%   watch that file
        %% * ignore = don't watch that module at all and ignore any changes to
        %%   its source path
        %% default: fix
        {non_descendants, fix},

        %% whitelisted_modules: Sync only these modules
        %% default: []
        {whitelisted_modules, []},

        %% excluded_modules: Ignore any modules listed
        %% default: []
        {excluded_modules, []},

        %% excluded_paths: A list of regular expressions such that if a path
        %% matches any of the provided regular expressions, that path and all
        %% its decendents will be ignored. See documentation for re:run/3 for
        %% regex syntax (https://www.erlang.org/doc/apps/stdlib/re.html#run/3)
        {excluded_paths, []},

        %% executable: Identify the program that you want run by the "growl" notifications
        %% valid values: auto | notifu | 'notify-send' | growlnotify | emacsclient | notification_center
        %% * auto = allow sync to autodetect which program to run
        %% * growlnotify = Use Growl for Mac
        %% * notification_center = Use OSX Notification Center
        %% * 'notify-send' = Use libnotify for Linux
        %% * notifu = The notifu program for Windows
        %% * emacsclient = Emacs notifications
        %% default: auto
        {executable, auto}
    ]}
].


